Zk Rollups
Public.icon
They can be used for specific use cases, but generalization is difficult
In a blog post from 2014, I introduced the concept of "shadow chains," an architecture where "block data is published on-chain, but blocks are not verified by default." In this architecture, blocks are provisionally accepted and only finalized after a certain period of time (two weeks, for example). During this two-week period, challenges can be made against provisionally accepted blocks. Only in that case are blocks verified, and if it is found that the block is invalid, the chain from that block is rolled back, and the original issuer's deposit is penalized.
Isn't that what Optimistic Rollups are now? Previous companies, interviews and appearances related to oneself.icon Even so, isn't 2014 too far ahead of its time?
In the recent proposal ZK Rollup 1, the validity of blocks is verified using ZKSNARK, allowing the same thing to be done without a challenge period. https://gyazo.com/2e2abbd55f99454dd966aa4d95fd29ed
The SNARK mentioned here seems to be some kind of proof Previous companies, interviews and appearances related to oneself.icon The structure of the ZK Rollup package published on the chain. Hundreds of "internal transactions" that affect the state (i.e., account balances) of the ZK Rollup system are compressed into packages containing ~10 bytes per internal transaction that specify state transitions, and further compressed into packages containing ~100-300 bytes of SNARKs that prove "all transitions are valid."]
Because there are too many transactions in Plasma = Layer2 (OPU, ZkR), the computation (which is the most computationally intensive factor) is omitted.
Data storage is cheaper than computation, especially since most of the data within a transaction is in the form of "signatures", which can be compressed into one through various forms of aggregation, allowing for a very small compressed transaction data. Instead of computation, validity can be verified through signatures using Zero-Knowledge Proof. In ZK Rollup, by compressing each transaction to just 10 bytes, it achieves 500 transactions/second, which is 30 times the performance of Layer 1 Ethereum chain. Since the validity of the signature is verified by zero-knowledge proof, it does not need to be included.
1. Use off-chain transaction bundles written to the main chain
The first approach compresses data size by writing verifiable proofs of multiple off-chain transactions to the on-chain.
An example based on this approach is the idea of "ZK Rollups" that verifies the validity of blocks using a type of zero-knowledge proof called "ZKSNARK". Based on ZK Rollup, a company called "Matter Labs" is developing a scaling protocol called "zkSync" with high UX.